#include "mainwindow.h"
#include <QApplication>
#include <QGridLayout>
#include <QPushButton>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWidget w ;
    QPushButton *pb,*pb1,*pb2,*pb3,*pb4,*pb5,*pb6;
    pb=new QPushButton("AAA");
    pb1=new QPushButton("BBB");    pb2=new QPushButton("CCC");
    pb3=new QPushButton("DDD");    pb4=new QPushButton("EEE");
    pb5=new QPushButton("FFF");    pb6=new QPushButton("GGG");
    QGridLayout *pg=new QGridLayout;
    pg->setVerticalSpacing(22);   //设置各子部件之间的垂直间距，不会为该间距分配索引。
    pg->addWidget(pb,0,0,1,1);  //把按钮pb添加到第0行0列，该按钮占据1行和1列单元格。
    pg->addWidget(pb1,0,1,1,1);
    pg->addWidget(pb2,1,0,1,3);  //该按钮占据3列单元格的宽度
    pg->addWidget(pb3,2,0,1,1,Qt::AlignBottom|Qt::AlignLeft);  //pb3在其单元格内左下对齐
    pg->addWidget(pb4,2,1,1,1);	   pg->addWidget(pb5,2,2,1,1,Qt::AlignTop|Qt::AlignRight);
    pg->addWidget(pb6,3,0,1,1);
    w.setLayout(pg);
    pg->setRowMinimumHeight(2,66);  //把第2行的最小高度设置为66像素
    pg->setColumnMinimumWidth(0,111);  //把第0列的最小宽度设置为111像素
    cout<<pg->columnCount()<<endl;  //输出列数，本例为3
    cout<<pg->rowCount()<<endl;     //输出行数，本例为4。
    cout<<pg->rowMinimumHeight(2)<<endl;  //输出第2行的最小高度66
    cout<<pg->columnMinimumWidth(0)<<endl; //输出第0列的最小宽度111
    int i,j,k,l;
    pg->getItemPosition(2,&i,&j,&k,&l);  //获取索引为2(本例为pb3)的子部件的位置信息。
    cout<<i<<","<<j<<","<<k<<","<<l<<endl; /*输出(1,0,1,3)，即该部件位于第1行第0列，占据1行3列的单元格大小。*/
    w.show();

    return a.exec();
}
